package ModelLayer;

/**
 * Write a description of class Person here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public abstract class Person
{
    private String name;
    private String phoneNumber;
    private String address;
    private String city;
    private String zipCode;

    /**
     * Constructor for objects of class Person (superclass).
     * @param name, the name on this person.
     * @param phoneNumber, the phonenumber on this person.
     * @param address, the address on this person.
     * @param city, the city on this person.
     * @param zipCode, the zipcode on this person.
     */
    public Person(String name, String phoneNumber, String address, String city, String zipCode)
    {
        this.name = name;
        this.phoneNumber = phoneNumber;
        this.address = address;
        this.city = city;
        this.zipCode = zipCode;
    }

    /**
     * Returns the name of this person.
     * @return name, the name returned.
     */
    public String getName()
    {
        return name;
    }

    /**
     * Returns the phoneNumber of this person.
     * @return phoneNumber, the phoneNumber returned.
     */
    public String getPhoneNumber()
    {
        return phoneNumber;
    }

    /**
     * Returns the address of this person.
     * @return address, the address returned.
     */
    public String getAddress()
    {
        return address;
    }

    /**
     * Returns the city of this person.
     * @return city, the city returned.
     */
    public String getCity()
    {
        return city;
    }

    /**
     * Returns the zipCode of this person
     * @return zipCode, the zipCode returned.
     */
    public String getZipCode()
    {
        return zipCode;
    }

    /**
     * Sets name on this person.
     * @param name, the name that is set.
     */
    public void setName(String name)
    {
        this.name = name;
    }

    /**
     * Sets phoneNumber on this person.
     * @param phoneNumber, the phoneNumber that is set.
     */
    public void setPhoneNumber(String phoneNumber)
    {
        this.phoneNumber = phoneNumber;
    }

    /**
     * Sets address on this person.
     * @param address, the address that is set.
     */
    public void setAddress(String address)
    {
        this.address = address;
    }

    /**
     * Sets city on this person.
     * @param city, the city that is set.
     */
    public void setCity(String city)
    {
        this.city = city;
    }

    /**
     * Sets zipCode on this person.
     * @param zipCode, the zipCode that is set.
     */
    public void setZipCode(String zipCode)
    {
        this.zipCode = zipCode;
    }

    /**
     * Abstract method which is to be found on all subclasses of this superclass.
     */
    public abstract void setId(int id);

    /**
     * Abstract method which is to be found on all subclasses of this superclass.
     */
    public abstract String getUserName();

    /**
     * Abstract method which is to be found on all subclasses of this superclass.
     */
    public abstract String getPassword();

    /**
     * Abstract method which is to be found on all subclasses of this superclass.
     */
    public abstract int getId();
}
